/**
 * Game Engine Module
 * 导出游戏引擎相关的类和接口
 */

export { GameEngine } from './GameEngine'
export type { Vector2D, GameEngineOptions } from './GameEngine'

export { Entity, EntityType } from './Entity'
export type { EntityOptions } from './Entity'

export { EntityManager } from './EntityManager'
export type { EntityManagerOptions } from './EntityManager'

export { CollisionDetector } from './CollisionDetector'
export type { CollisionInfo, SpatialGrid, CollisionDetectorOptions } from './CollisionDetector'

export { Player, PlayerState, PlayerLane } from './Player'
export type { PlayerOptions, PlayerStats } from './Player'

export { Sprite } from './Sprite'
export type { SpriteFrame, SpriteOptions } from './Sprite'

export { Animation, AnimationState } from './Animation'
export type { AnimationFrame, AnimationOptions } from './Animation'

export { AnimationManager } from './AnimationManager'
export type { AnimationTransition } from './AnimationManager'

export { AnimationController, AnimationType, animationController, AnimationUtils } from './AnimationController'
export type { AnimationConfig, AnimationState } from './AnimationController'

export { ParticleSystem, ParticleEmitter, Particle, ParticleType, BlendMode } from './ParticleSystem'
export type { ParticleConfig, EmitterConfig, Vector2D, Color } from './ParticleSystem'

export { CharacterManager, CharacterAbilityType, UnlockConditionType } from './Character'
export type { 
  Character, 
  CharacterAbility, 
  CharacterStats, 
  UnlockCondition 
} from './Character'

export { Background } from './Background'
export type { BackgroundOptions } from './Background'

export { BackgroundManager } from './BackgroundManager'
export type { 
  BackgroundLayer, 
  ThemeConfig, 
  BackgroundManagerOptions 
} from './BackgroundManager'

export { ThemeSystem } from './ThemeSystem'
export type { 
  ThemeAssets, 
  ColorPalette, 
  ThemeData, 
  ThemeSystemOptions 
} from './ThemeSystem'

export { BackgroundDemo, createBackgroundDemo } from './BackgroundDemo'

export { PowerUp, PowerUpType, PowerUpRarity, PowerUpManager } from './PowerUp'
export type { 
  PowerUpConfig, 
  PowerUpEffect, 
  PowerUpOptions, 
  ActivePowerUp 
} from './PowerUp'

export { PowerUpFactory } from './PowerUpFactory'
export type { PowerUpSpawnConfig } from './PowerUpFactory'

export { PowerUpGenerator, PowerUpSpawnPattern } from './PowerUpGenerator'
export type { PowerUpGeneratorConfig } from './PowerUpGenerator'

export { MagnetPowerUp } from './powerups/MagnetPowerUp'
export { SpeedBoostPowerUp } from './powerups/SpeedBoostPowerUp'
export { ShieldPowerUp } from './powerups/ShieldPowerUp'
export { DoubleScorePowerUp } from './powerups/DoubleScorePowerUp'

export { AudioManager, audioManager } from './AudioManager'

export { GameAudioSystem, gameAudioSystem } from './GameAudioSystem'

export { 
  SoundEffectType, 
  BackgroundMusicType,
  SOUND_EFFECTS,
  BACKGROUND_MUSIC,
  AUDIO_THEMES,
  getSoundEffectConfig,
  getBackgroundMusicConfig,
  getAudioThemeConfig
} from './AudioAssets'
export type { AudioAssetConfig, AudioThemeConfig } from './AudioAssets'

export { StorageManager, storageManager, StorageError, StorageErrorType, AchievementCategory } from './StorageManager'
export type { 
  GameData, 
  Achievement, 
  AchievementCondition, 
  AchievementReward, 
  LeaderboardEntry,
  StorageConfig 
} from './StorageManager'

export { 
  AchievementSystem, 
  AchievementEventType 
} from './AchievementSystem'
export type { 
  GameStatistics, 
  AchievementEvent, 
  AchievementUnlockResult 
} from './AchievementSystem'

export { 
  LeaderboardSystem, 
  LeaderboardType 
} from './LeaderboardSystem'
export type { 
  LeaderboardConfig, 
  GameRecord, 
  LeaderboardStats 
} from './LeaderboardSystem'

export { RenderErrorHandler, renderErrorHandler } from './RenderErrorHandler'
export type { RenderFallbackOptions, RenderErrorInfo } from './RenderErrorHandler'

export { AudioErrorHandler, audioErrorHandler } from './AudioErrorHandler'
export type { AudioFallbackOptions, AudioErrorInfo } from './AudioErrorHandler'

export { StorageErrorHandler, storageErrorHandler } from './StorageErrorHandler'
export type { StorageFallbackOptions, StorageErrorInfo } from './StorageErrorHandler'

export { GameErrorHandler, gameErrorHandler } from './GameErrorHandler'
export type { GameErrorHandlerOptions, GameErrorInfo, GameState } from './GameErrorHandler'